package sv.com.administrador.seguros.dao.sgd;

import java.util.List;

import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;

import sv.com.administrador.seguros.dao.BaseDaoImpl;
import sv.com.administrador.seguros.dto.sgd.SgdUsuario;
import sv.com.administrador.seguros.exception.WebException;
import sv.com.administrador.seguros.web.util.WebUtility;

@Repository
public class SgdUsuarioDaoImpl extends BaseDaoImpl implements SgdUsuarioDao{

	@SuppressWarnings("unchecked")
	public SgdUsuario findBySgdUsuarioUsuario(String sgdUsuarioUsuario) throws WebException{
		DetachedCriteria criteria = DetachedCriteria.forClass(SgdUsuario.class);
		criteria.add(Restrictions.eq("sgdUsuarioUsuario", sgdUsuarioUsuario));
		try {
			List<SgdUsuario> list = (List<SgdUsuario>) findByCriteria(criteria);
			if(WebUtility.isEmptyList(list)) throw new WebException("Usuario: " + sgdUsuarioUsuario + " no encontrado");
			return list.get(0);
		} catch (WebException e) {
			throw e;
		} catch (Exception e) {
			logger.error(e, e);
			throw new WebException(WebUtility.DEFAULT_QUERY_ERROR_MESSAGE);
		}
	}
}
